Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactor extra::sync, and extra::arc #7701

Closed
wants to merge 1 commit into from

Conversation

mstewartgallus
Copy link
Contributor

This is a really big pull request for me so I probable got stuff wrong (also concurrency is really really really difficult.) Because I'm so uncertain about if this is pull request is correct I really want other people to look over it, and second guess it.

Convert functionality into RAII style.

Split functionality up into the modules.

Cleanup dependencies, and redundancies.

@huonw
Copy link
Member

huonw commented Jul 11, 2013

cc @bblum

@pcwalton
Copy link
Contributor

I'm not sure about the name Shared here; in the past we've tried to avoid the name "shared" because it's kind of nebulous.

@pcwalton
Copy link
Contributor

On the other hand ARC is clearly a terrible name.

@thestinger
Copy link
Contributor

SendRc?

@mstewartgallus
Copy link
Contributor Author

One strategy I was thinking about doing for naming was to have the simple names like Shared, and SharedMut be aliases of good default choices for such functionality such as Arc, and RWArc. If there was some alternative possible implementation for Shared then I think that might be a good strategy (I really can't think of any possible future alternative implementation of the Shared concept though.)

Also, I've been still working on this pull request and double checking it.

@huonw
Copy link
Member

huonw commented Jul 12, 2013

You've deleted several testcases: presumably the functionality is still there, and so the tests just need to be adjusted for the new modules? (This isn't my area of expertises, so I could easily be wrong.)

(Also, you appear to have included the compiled extra binary.)

@mstewartgallus
Copy link
Contributor Author

The extra binary is deleted in my latest work (I just haven't uploaded it yet.)

About the test cases, instead of using an explicit Condvar I moved towards using WaitQueues instead (because this model was cleaner, and easier to implement instead,) and so the tests for Condvar not escaping aren't required anymore. As well, the tests for read mode tokens not escaping are not needed anymore because I moved to a RAII model where the locks are reified as objects like WriteLock, and ReadLock instead.

I did xfail https://github.com/mozilla/rust/pull/7701/files#diff-15 , and https://github.com/mozilla/rust/pull/7701/files#diff-16 though which when modified gave me strange internal compiler errors. I plan on submitting a full bug report on the issue but have not isolated a suitable small test case yet.

Also, I temporarily disabled the https://github.com/mozilla/rust/pull/7701/files#diff-38 test case that failed on my machine, and forgot to change that back. I'll fix that in a bit.

@bblum
Copy link
Contributor

bblum commented Jul 12, 2013

Overall the RAII implementation looks good, but there are a lot of interface changes that I disagree with, and one showstopper race condition.

@mstewartgallus
Copy link
Contributor Author

Okay, so I can't get this pull request to work due to issue #7804 so I'm going to break this pull request up into a few smaller pull requests that don't touch on that issue.

Also, if anyone thinks it'd be cleaner to close this specific pull request, and have me open a new one when that weird issue that's blocking me is fixed instead of leaving this one open I would not be opposed.

@mstewartgallus
Copy link
Contributor Author

So huonw pointed out issue #7899 and that let me figure out a workaround so this pull request is now not blocked on that. I'm not exactly happy with how the current system for condition variables works so I might make a few more changes. As well, I haven't yet benchmarked the performance impact of these changes so I might have to make changes for that as well. Finally, I can still probable polish this pull request up a bit more.

@mstewartgallus
Copy link
Contributor Author

Okay, so using the following test script I got the benchmarks at the bottom.

#! /bin/sh

for COMMAND in \
    ./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-mutex-arcs.stage1-x86_64-unknown-linux-gnu \
    ./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-rw-arcs.stage1-x86_64-unknown-linux-gnu \
    ./x86_64-unknown-linux-gnu/test/bench/graph500-bfs.stage1-x86_64-unknown-linux-gnu
do
    echo ${COMMAND}
    for II in `seq 0 5`
    do
    ${COMMAND}
    done
    echo
done

The results are pretty good for the performance of RWArcs but are slightly worse for the performance of MutexArcs. The graph500-bfs results are included in performance but shouldn't, and didn't change much.

Old results on my computer.

./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-mutex-arcs.stage1-x86_64-unknown-linux-gnu
Sent 1000 messages in 0.00530977 seconds
  188332.07464137 messages / second
  5.30977 μs / message
Sent 1000 messages in 0.00563509 seconds
  177459.32900118 messages / second
  5.635094 μs / message
Sent 1000 messages in 0.00499451 seconds
  200219.64115035 messages / second
  4.99451499 μs / message
Sent 1000 messages in 0.00578454 seconds
  172874.56350428 messages / second
  5.784541 μs / message
Sent 1000 messages in 0.00656832 seconds
  152245.97834489 messages / second
  6.568318 μs / message
Sent 1000 messages in 0.00674307 seconds
  148300.38114416 messages / second
  6.743071 μs / message

./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-rw-arcs.stage1-x86_64-unknown-linux-gnu
Sent 1000 messages in 0.01115452 seconds
  89649.78845261 messages / second
  11.154516 μs / message
Sent 1000 messages in 0.00870772 seconds
  114840.65056323 messages / second
  8.707718 μs / message
Sent 1000 messages in 0.00861913 seconds
  116021.01745514 messages / second
  8.619128 μs / message
Sent 1000 messages in 0.01264113 seconds
  79106.87703651 messages / second
  12.641126 μs / message
Sent 1000 messages in 0.01450148 seconds
  68958.48346071 messages / second
  14.501479 μs / message
Sent 1000 messages in 0.01463178 seconds
  68344.37060574 messages / second
  14.631783 μs / message

./x86_64-unknown-linux-gnu/test/bench/graph500-bfs.stage1-x86_64-unknown-linux-gnu
Generated 16384 edges in 0.01058904 seconds.
Generated graph with 10480 edges in 0.00883219 seconds.

Search key: &664
Sequential BFS completed in 0.00033557 seconds.
Alternate Sequential BFS completed in 0.00036572 seconds.
Parallel BFS completed in 0.00355757 seconds.

Search key: &218
Sequential BFS completed in 0.0003312 seconds.
Alternate Sequential BFS completed in 0.00036504 seconds.
Parallel BFS completed in 0.00268999 seconds.

Search key: &554
Sequential BFS completed in 0.00039324 seconds.
Alternate Sequential BFS completed in 0.00050352 seconds.
Parallel BFS completed in 0.00278987 seconds.

Search key: &334
Sequential BFS completed in 0.00039856 seconds.
Alternate Sequential BFS completed in 0.00045146 seconds.
Parallel BFS completed in 0.00286358 seconds.

Search key: &667
Sequential BFS completed in 0.00039779 seconds.
Alternate Sequential BFS completed in 0.00074572 seconds.
Parallel BFS completed in 0.0037624 seconds.

Search key: &290
Sequential BFS completed in 0.00068664 seconds.
Alternate Sequential BFS completed in 0.00072109 seconds.
Parallel BFS completed in 0.00289967 seconds.

Search key: &327
Sequential BFS completed in 0.00068315 seconds.
Alternate Sequential BFS completed in 0.00077251 seconds.
Parallel BFS completed in 0.00333796 seconds.

Search key: &416
Sequential BFS completed in 0.0006813 seconds.
Alternate Sequential BFS completed in 0.00072146 seconds.
Parallel BFS completed in 0.00296274 seconds.

Search key: &288
Sequential BFS completed in 0.00083768 seconds.
Alternate Sequential BFS completed in 0.00086153 seconds.
Parallel BFS completed in 0.00303645 seconds.

Search key: &908
Sequential BFS completed in 0.00089451 seconds.
Alternate Sequential BFS completed in 0.00105391 seconds.
Parallel BFS completed in 0.00384298 seconds.

Search key: &865
Sequential BFS completed in 0.00093223 seconds.
Alternate Sequential BFS completed in 0.00106761 seconds.
Parallel BFS completed in 0.00387547 seconds.

Search key: &393
Sequential BFS completed in 0.00097182 seconds.
Alternate Sequential BFS completed in 0.00101428 seconds.
Parallel BFS completed in 0.00323915 seconds.

Search key: &80
Sequential BFS completed in 0.00094073 seconds.
Alternate Sequential BFS completed in 0.00096031 seconds.
Parallel BFS completed in 0.00313932 seconds.

Search key: &378
Sequential BFS completed in 0.00093946 seconds.
Alternate Sequential BFS completed in 0.00112588 seconds.
Parallel BFS completed in 0.00414558 seconds.

Search key: &64
Sequential BFS completed in 0.00094759 seconds.
Alternate Sequential BFS completed in 0.00094185 seconds.
Parallel BFS completed in 0.00294857 seconds.

Search key: &841
Sequential BFS completed in 0.00094892 seconds.
Alternate Sequential BFS completed in 0.00107555 seconds.
Parallel BFS completed in 0.00399196 seconds.

Total sequential: 0.01274743     Total Parallel: 0.05308327      Speedup: 0.24014017x
Generated 16384 edges in 0.01056294 seconds.
Generated graph with 10480 edges in 0.01368081 seconds.

Search key: &637
Sequential BFS completed in 0.00033691 seconds.
Alternate Sequential BFS completed in 0.00039536 seconds.
Parallel BFS completed in 0.00390369 seconds.

Search key: &739
Sequential BFS completed in 0.00033131 seconds.
Alternate Sequential BFS completed in 0.00039033 seconds.
Parallel BFS completed in 0.00303459 seconds.

Search key: &500
Sequential BFS completed in 0.000329 seconds.
Alternate Sequential BFS completed in 0.00037711 seconds.
Parallel BFS completed in 0.00278244 seconds.

Search key: &40
Sequential BFS completed in 0.00032914 seconds.
Alternate Sequential BFS completed in 0.00033666 seconds.
Parallel BFS completed in 0.00235538 seconds.

Search key: &33
Sequential BFS completed in 0.00047271 seconds.
Alternate Sequential BFS completed in 0.00047838 seconds.
Parallel BFS completed in 0.00219573 seconds.

Search key: &487
Sequential BFS completed in 0.00068218 seconds.
Alternate Sequential BFS completed in 0.00078072 seconds.
Parallel BFS completed in 0.00348155 seconds.

Search key: &308
Sequential BFS completed in 0.00068498 seconds.
Alternate Sequential BFS completed in 0.0007345 seconds.
Parallel BFS completed in 0.00303976 seconds.

Search key: &172
Sequential BFS completed in 0.00068294 seconds.
Alternate Sequential BFS completed in 0.00075229 seconds.
Parallel BFS completed in 0.00355407 seconds.

Search key: &822
Sequential BFS completed in 0.00085277 seconds.
Alternate Sequential BFS completed in 0.00095972 seconds.
Parallel BFS completed in 0.00363847 seconds.

Search key: &837
Sequential BFS completed in 0.0008372 seconds.
Alternate Sequential BFS completed in 0.00098283 seconds.
Parallel BFS completed in 0.00377797 seconds.

Search key: &928
Sequential BFS completed in 0.00083966 seconds.
Alternate Sequential BFS completed in 0.00098923 seconds.
Parallel BFS completed in 0.00312907 seconds.

Search key: &956
Sequential BFS completed in 0.0009559 seconds.
Alternate Sequential BFS completed in 0.00109386 seconds.
Parallel BFS completed in 0.00384274 seconds.

Search key: &541
Sequential BFS completed in 0.0009441 seconds.
Alternate Sequential BFS completed in 0.00107372 seconds.
Parallel BFS completed in 0.00374271 seconds.

Search key: &847
Sequential BFS completed in 0.00095925 seconds.
Alternate Sequential BFS completed in 0.00108033 seconds.
Parallel BFS completed in 0.00405146 seconds.

Search key: &76
Sequential BFS completed in 0.00094042 seconds.
Alternate Sequential BFS completed in 0.00101628 seconds.
Parallel BFS completed in 0.00327774 seconds.

Search key: &174
Sequential BFS completed in 0.00095488 seconds.
Alternate Sequential BFS completed in 0.0010468 seconds.
Parallel BFS completed in 0.00378358 seconds.

Total sequential: 0.01248811     Total Parallel: 0.05359094      Speedup: 0.23302657x
Generated 16384 edges in 0.01051586 seconds.
Generated graph with 10480 edges in 0.01589648 seconds.

Search key: &94
Sequential BFS completed in 0.00033553 seconds.
Alternate Sequential BFS completed in 0.00036899 seconds.
Parallel BFS completed in 0.00237832 seconds.

Search key: &648
Sequential BFS completed in 0.00032978 seconds.
Alternate Sequential BFS completed in 0.0003528 seconds.
Parallel BFS completed in 0.00148689 seconds.

Search key: &304
Sequential BFS completed in 0.00032816 seconds.
Alternate Sequential BFS completed in 0.00034844 seconds.
Parallel BFS completed in 0.0010557 seconds.

Search key: &768
Sequential BFS completed in 0.00032849 seconds.
Alternate Sequential BFS completed in 0.00037593 seconds.
Parallel BFS completed in 0.00109134 seconds.

Search key: &853
Sequential BFS completed in 0.00035743 seconds.
Alternate Sequential BFS completed in 0.00040605 seconds.
Parallel BFS completed in 0.00142053 seconds.

Search key: &15
Sequential BFS completed in 0.00036554 seconds.
Alternate Sequential BFS completed in 0.00039574 seconds.
Parallel BFS completed in 0.00138493 seconds.

Search key: &925
Sequential BFS completed in 0.00035846 seconds.
Alternate Sequential BFS completed in 0.00041429 seconds.
Parallel BFS completed in 0.00148611 seconds.

Search key: &168
Sequential BFS completed in 0.00036147 seconds.
Alternate Sequential BFS completed in 0.00038877 seconds.
Parallel BFS completed in 0.00134946 seconds.

Search key: &455
Sequential BFS completed in 0.00035722 seconds.
Alternate Sequential BFS completed in 0.00040825 seconds.
Parallel BFS completed in 0.00167718 seconds.

Search key: &911
Sequential BFS completed in 0.0003602 seconds.
Alternate Sequential BFS completed in 0.00042919 seconds.
Parallel BFS completed in 0.00233441 seconds.

Search key: &873
Sequential BFS completed in 0.00035757 seconds.
Alternate Sequential BFS completed in 0.00041617 seconds.
Parallel BFS completed in 0.00222897 seconds.

Search key: &270
Sequential BFS completed in 0.00035862 seconds.
Alternate Sequential BFS completed in 0.00039755 seconds.
Parallel BFS completed in 0.00254134 seconds.

Search key: &52
Sequential BFS completed in 0.00044498 seconds.
Alternate Sequential BFS completed in 0.00046608 seconds.
Parallel BFS completed in 0.00217406 seconds.

Search key: &187
Sequential BFS completed in 0.00057697 seconds.
Alternate Sequential BFS completed in 0.00066018 seconds.
Parallel BFS completed in 0.00293048 seconds.

Search key: &937
Sequential BFS completed in 0.00057816 seconds.
Alternate Sequential BFS completed in 0.0006716 seconds.
Parallel BFS completed in 0.00299984 seconds.

Search key: &299
Sequential BFS completed in 0.00057941 seconds.
Alternate Sequential BFS completed in 0.00065378 seconds.
Parallel BFS completed in 0.00293452 seconds.

Total sequential: 0.00715381     Total Parallel: 0.03147409      Speedup: 0.22729189x
Generated 16384 edges in 0.01058466 seconds.
Generated graph with 10480 edges in 0.01438424 seconds.

Search key: &901
Sequential BFS completed in 0.0003355 seconds.
Alternate Sequential BFS completed in 0.00037187 seconds.
Parallel BFS completed in 0.00598098 seconds.

Search key: &737
Sequential BFS completed in 0.00095479 seconds.
Alternate Sequential BFS completed in 0.00107863 seconds.
Parallel BFS completed in 0.00405746 seconds.

Search key: &577
Sequential BFS completed in 0.00095469 seconds.
Alternate Sequential BFS completed in 0.00105057 seconds.
Parallel BFS completed in 0.00323561 seconds.

Search key: &691
Sequential BFS completed in 0.00097533 seconds.
Alternate Sequential BFS completed in 0.00109043 seconds.
Parallel BFS completed in 0.00401443 seconds.

Search key: &119
Sequential BFS completed in 0.0009489 seconds.
Alternate Sequential BFS completed in 0.00114561 seconds.
Parallel BFS completed in 0.00417944 seconds.

Search key: &822
Sequential BFS completed in 0.00094302 seconds.
Alternate Sequential BFS completed in 0.00108373 seconds.
Parallel BFS completed in 0.00406392 seconds.

Search key: &20
Sequential BFS completed in 0.0005881 seconds.
Alternate Sequential BFS completed in 0.00075199 seconds.
Parallel BFS completed in 0.00349964 seconds.

Search key: &556
Sequential BFS completed in 0.00098212 seconds.
Alternate Sequential BFS completed in 0.00101721 seconds.
Parallel BFS completed in 0.0035868 seconds.

Search key: &746
Sequential BFS completed in 0.00095137 seconds.
Alternate Sequential BFS completed in 0.00114049 seconds.
Parallel BFS completed in 0.00385624 seconds.

Search key: &79
Sequential BFS completed in 0.00094872 seconds.
Alternate Sequential BFS completed in 0.00107048 seconds.
Parallel BFS completed in 0.00379043 seconds.

Search key: &174
Sequential BFS completed in 0.00094307 seconds.
Alternate Sequential BFS completed in 0.00106486 seconds.
Parallel BFS completed in 0.00387797 seconds.

Search key: &24
Sequential BFS completed in 0.00094746 seconds.
Alternate Sequential BFS completed in 0.00096657 seconds.
Parallel BFS completed in 0.0030295 seconds.

Search key: &323
Sequential BFS completed in 0.00094386 seconds.
Alternate Sequential BFS completed in 0.0010212 seconds.
Parallel BFS completed in 0.00332599 seconds.

Search key: &222
Sequential BFS completed in 0.00093984 seconds.
Alternate Sequential BFS completed in 0.00122712 seconds.
Parallel BFS completed in 0.00491259 seconds.

Search key: &214
Sequential BFS completed in 0.00093574 seconds.
Alternate Sequential BFS completed in 0.00106363 seconds.
Parallel BFS completed in 0.00385974 seconds.

Search key: &377
Sequential BFS completed in 0.00094314 seconds.
Alternate Sequential BFS completed in 0.00119686 seconds.
Parallel BFS completed in 0.0045759 seconds.

Total sequential: 0.01634126     Total Parallel: 0.06384663      Speedup: 0.25594555x
Generated 16384 edges in 0.01057018 seconds.
Generated graph with 10480 edges in 0.0113109 seconds.

Search key: &946
Sequential BFS completed in 0.00033697 seconds.
Alternate Sequential BFS completed in 0.00039442 seconds.
Parallel BFS completed in 0.00393287 seconds.

Search key: &403
Sequential BFS completed in 0.00033081 seconds.
Alternate Sequential BFS completed in 0.00042233 seconds.
Parallel BFS completed in 0.0028589 seconds.

Search key: &281
Sequential BFS completed in 0.00037567 seconds.
Alternate Sequential BFS completed in 0.00040384 seconds.
Parallel BFS completed in 0.00257493 seconds.

Search key: &519
Sequential BFS completed in 0.0003795 seconds.
Alternate Sequential BFS completed in 0.00041951 seconds.
Parallel BFS completed in 0.00264873 seconds.

Search key: &95
Sequential BFS completed in 0.00037758 seconds.
Alternate Sequential BFS completed in 0.00043855 seconds.
Parallel BFS completed in 0.00269102 seconds.

Search key: &57
Sequential BFS completed in 0.00037455 seconds.
Alternate Sequential BFS completed in 0.00041355 seconds.
Parallel BFS completed in 0.00284039 seconds.

Search key: &740
Sequential BFS completed in 0.00068395 seconds.
Alternate Sequential BFS completed in 0.00076178 seconds.
Parallel BFS completed in 0.00332941 seconds.

Search key: &48
Sequential BFS completed in 0.00069283 seconds.
Alternate Sequential BFS completed in 0.00069711 seconds.
Parallel BFS completed in 0.0028876 seconds.

Search key: &130
Sequential BFS completed in 0.00083844 seconds.
Alternate Sequential BFS completed in 0.00086662 seconds.
Parallel BFS completed in 0.00305652 seconds.

Search key: &866
Sequential BFS completed in 0.00085079 seconds.
Alternate Sequential BFS completed in 0.000953 seconds.
Parallel BFS completed in 0.00386759 seconds.

Search key: &375
Sequential BFS completed in 0.00093222 seconds.
Alternate Sequential BFS completed in 0.0011662 seconds.
Parallel BFS completed in 0.00433539 seconds.

Search key: &665
Sequential BFS completed in 0.0009307 seconds.
Alternate Sequential BFS completed in 0.00106938 seconds.
Parallel BFS completed in 0.00380195 seconds.

Search key: &259
Sequential BFS completed in 0.00093847 seconds.
Alternate Sequential BFS completed in 0.00102609 seconds.
Parallel BFS completed in 0.00314135 seconds.

Search key: &433
Sequential BFS completed in 0.00098982 seconds.
Alternate Sequential BFS completed in 0.00104872 seconds.
Parallel BFS completed in 0.00405673 seconds.

Search key: &407
Sequential BFS completed in 0.00094764 seconds.
Alternate Sequential BFS completed in 0.00113279 seconds.
Parallel BFS completed in 0.00416531 seconds.

Search key: &540
Sequential BFS completed in 0.00093843 seconds.
Alternate Sequential BFS completed in 0.00101596 seconds.
Parallel BFS completed in 0.00342987 seconds.

Total sequential: 0.01222985     Total Parallel: 0.05361854      Speedup: 0.22808994x
Generated 16384 edges in 0.0105454 seconds.
Generated graph with 10480 edges in 0.01463533 seconds.

Search key: &589
Sequential BFS completed in 0.00033689 seconds.
Alternate Sequential BFS completed in 0.00037515 seconds.
Parallel BFS completed in 0.00569721 seconds.

Search key: &926
Sequential BFS completed in 0.00098318 seconds.
Alternate Sequential BFS completed in 0.0011126 seconds.
Parallel BFS completed in 0.00400944 seconds.

Search key: &356
Sequential BFS completed in 0.00094834 seconds.
Alternate Sequential BFS completed in 0.00105509 seconds.
Parallel BFS completed in 0.00358108 seconds.

Search key: &137
Sequential BFS completed in 0.00097343 seconds.
Alternate Sequential BFS completed in 0.00099497 seconds.
Parallel BFS completed in 0.00305237 seconds.

Search key: &423
Sequential BFS completed in 0.00093973 seconds.
Alternate Sequential BFS completed in 0.00112553 seconds.
Parallel BFS completed in 0.00396005 seconds.

Search key: &825
Sequential BFS completed in 0.00097167 seconds.
Alternate Sequential BFS completed in 0.00117176 seconds.
Parallel BFS completed in 0.00421709 seconds.

Search key: &614
Sequential BFS completed in 0.0009302 seconds.
Alternate Sequential BFS completed in 0.00105265 seconds.
Parallel BFS completed in 0.00372511 seconds.

Search key: &658
Sequential BFS completed in 0.00098986 seconds.
Alternate Sequential BFS completed in 0.00100905 seconds.
Parallel BFS completed in 0.00311636 seconds.

Search key: &278
Sequential BFS completed in 0.00094225 seconds.
Alternate Sequential BFS completed in 0.00120642 seconds.
Parallel BFS completed in 0.0031891 seconds.

Search key: &748
Sequential BFS completed in 0.00094463 seconds.
Alternate Sequential BFS completed in 0.00119262 seconds.
Parallel BFS completed in 0.0043335 seconds.

Search key: &269
Sequential BFS completed in 0.00093698 seconds.
Alternate Sequential BFS completed in 0.00104047 seconds.
Parallel BFS completed in 0.00371588 seconds.

Search key: &268
Sequential BFS completed in 0.00096579 seconds.
Alternate Sequential BFS completed in 0.00099663 seconds.
Parallel BFS completed in 0.00313192 seconds.

Search key: &948
Sequential BFS completed in 0.00092935 seconds.
Alternate Sequential BFS completed in 0.00106053 seconds.
Parallel BFS completed in 0.0038015 seconds.

Search key: &115
Sequential BFS completed in 0.00094335 seconds.
Alternate Sequential BFS completed in 0.00110029 seconds.
Parallel BFS completed in 0.0039186 seconds.

Search key: &594
Sequential BFS completed in 0.00094318 seconds.
Alternate Sequential BFS completed in 0.00101535 seconds.
Parallel BFS completed in 0.00337836 seconds.

Search key: &752
Sequential BFS completed in 0.00094415 seconds.
Alternate Sequential BFS completed in 0.0010959 seconds.
Parallel BFS completed in 0.00401284 seconds.

Total sequential: 0.01660502     Total Parallel: 0.06084045      Speedup: 0.27292739x

New results

./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-mutex-arcs.stage1-x86_64-unknown-linux-gnu
Sent 1000 messages in 0.00836366 seconds
  119564.8509483 messages / second
  8.363662 μs / message
Sent 1000 messages in 0.00590591 seconds
  169321.88787995 messages / second
  5.905911 μs / message
Sent 1000 messages in 0.00631327 seconds
  158396.52030621 messages / second
  6.31327 μs / message
Sent 1000 messages in 0.00518788 seconds
  192756.92725587 messages / second
  5.187881 μs / message
Sent 1000 messages in 0.0094238 seconds
  106114.3400634 messages / second
  9.423797 μs / message
Sent 1000 messages in 0.00701016 seconds
  142650.0760099 messages / second
  7.010161 μs / message

./x86_64-unknown-linux-gnu/test/bench/msgsend-ring-rw-arcs.stage1-x86_64-unknown-linux-gnu
Sent 1000 messages in 0.00673121 seconds
  148561.81022414 messages / second
  6.731205 μs / message
Sent 1000 messages in 0.00575339 seconds
  173810.69159918 messages / second
  5.753386 μs / message
Sent 1000 messages in 0.00614317 seconds
  162782.43369641 messages / second
  6.143169 μs / message
Sent 1000 messages in 0.00710525 seconds
  140741.04088439 messages / second
  7.10524801 μs / message
Sent 1000 messages in 0.00721551 seconds
  138590.24620759 messages / second
  7.215515 μs / message
Sent 1000 messages in 0.00777437 seconds
  128627.71967165 messages / second
  7.774374 μs / message

./x86_64-unknown-linux-gnu/test/bench/graph500-bfs.stage1-x86_64-unknown-linux-gnu
Generated 16384 edges in 0.00367402 seconds.
Generated graph with 10480 edges in 0.01546183 seconds.

Search key: &479
Sequential BFS completed in 0.00033712 seconds.
Alternate Sequential BFS completed in 0.00040146 seconds.
Parallel BFS completed in 0.00395205 seconds.

Search key: &253
Sequential BFS completed in 0.00094988 seconds.
Alternate Sequential BFS completed in 0.00113342 seconds.
Parallel BFS completed in 0.00394153 seconds.

Search key: &845
Sequential BFS completed in 0.00094681 seconds.
Alternate Sequential BFS completed in 0.00113836 seconds.
Parallel BFS completed in 0.00397718 seconds.

Search key: &331
Sequential BFS completed in 0.00093557 seconds.
Alternate Sequential BFS completed in 0.00105426 seconds.
Parallel BFS completed in 0.00371992 seconds.

Search key: &269
Sequential BFS completed in 0.00092871 seconds.
Alternate Sequential BFS completed in 0.00106643 seconds.
Parallel BFS completed in 0.00356819 seconds.

Search key: &951
Sequential BFS completed in 0.00094175 seconds.
Alternate Sequential BFS completed in 0.00126728 seconds.
Parallel BFS completed in 0.00420003 seconds.

Search key: &915
Sequential BFS completed in 0.00097979 seconds.
Alternate Sequential BFS completed in 0.001168 seconds.
Parallel BFS completed in 0.00439588 seconds.

Search key: &136
Sequential BFS completed in 0.00094081 seconds.
Alternate Sequential BFS completed in 0.00096193 seconds.
Parallel BFS completed in 0.00324089 seconds.

Search key: &513
Sequential BFS completed in 0.00096888 seconds.
Alternate Sequential BFS completed in 0.0009581 seconds.
Parallel BFS completed in 0.00312227 seconds.

Search key: &188
Sequential BFS completed in 0.0009403 seconds.
Alternate Sequential BFS completed in 0.00106705 seconds.
Parallel BFS completed in 0.00402219 seconds.

Search key: &365
Sequential BFS completed in 0.00094088 seconds.
Alternate Sequential BFS completed in 0.00113247 seconds.
Parallel BFS completed in 0.00413507 seconds.

Search key: &551
Sequential BFS completed in 0.00094511 seconds.
Alternate Sequential BFS completed in 0.00108853 seconds.
Parallel BFS completed in 0.00413455 seconds.

Search key: &795
Sequential BFS completed in 0.000964 seconds.
Alternate Sequential BFS completed in 0.00108921 seconds.
Parallel BFS completed in 0.00416919 seconds.

Search key: &388
Sequential BFS completed in 0.00094422 seconds.
Alternate Sequential BFS completed in 0.00099582 seconds.
Parallel BFS completed in 0.00331043 seconds.

Search key: &169
Sequential BFS completed in 0.00097634 seconds.
Alternate Sequential BFS completed in 0.00103049 seconds.
Parallel BFS completed in 0.00392002 seconds.

Search key: &686
Sequential BFS completed in 0.00093867 seconds.
Alternate Sequential BFS completed in 0.00107372 seconds.
Parallel BFS completed in 0.00382361 seconds.

Total sequential: 0.01662655     Total Parallel: 0.061633    Speedup: 0.26976702x
Generated 16384 edges in 0.01058454 seconds.
Generated graph with 10480 edges in 0.0135754 seconds.

Search key: &282
Sequential BFS completed in 0.00033259 seconds.
Alternate Sequential BFS completed in 0.00036218 seconds.
Parallel BFS completed in 0.00343585 seconds.

Search key: &602
Sequential BFS completed in 0.00033572 seconds.
Alternate Sequential BFS completed in 0.00036806 seconds.
Parallel BFS completed in 0.00249616 seconds.

Search key: &941
Sequential BFS completed in 0.000399 seconds.
Alternate Sequential BFS completed in 0.00048738 seconds.
Parallel BFS completed in 0.00282946 seconds.

Search key: &24
Sequential BFS completed in 0.00039832 seconds.
Alternate Sequential BFS completed in 0.00040738 seconds.
Parallel BFS completed in 0.00191449 seconds.

Search key: &654
Sequential BFS completed in 0.00040561 seconds.
Alternate Sequential BFS completed in 0.00045841 seconds.
Parallel BFS completed in 0.00244567 seconds.

Search key: &37
Sequential BFS completed in 0.00039776 seconds.
Alternate Sequential BFS completed in 0.00041801 seconds.
Parallel BFS completed in 0.00220183 seconds.

Search key: &1008
Sequential BFS completed in 0.00057457 seconds.
Alternate Sequential BFS completed in 0.00066015 seconds.
Parallel BFS completed in 0.00295413 seconds.

Search key: &160
Sequential BFS completed in 0.000581 seconds.
Alternate Sequential BFS completed in 0.00059155 seconds.
Parallel BFS completed in 0.00228245 seconds.

Search key: &232
Sequential BFS completed in 0.00057737 seconds.
Alternate Sequential BFS completed in 0.00061987 seconds.
Parallel BFS completed in 0.00263599 seconds.

Search key: &757
Sequential BFS completed in 0.00074663 seconds.
Alternate Sequential BFS completed in 0.00085527 seconds.
Parallel BFS completed in 0.00338414 seconds.

Search key: &687
Sequential BFS completed in 0.0007538 seconds.
Alternate Sequential BFS completed in 0.00085712 seconds.
Parallel BFS completed in 0.00346567 seconds.

Search key: &76
Sequential BFS completed in 0.0007557 seconds.
Alternate Sequential BFS completed in 0.00080011 seconds.
Parallel BFS completed in 0.00295223 seconds.

Search key: &106
Sequential BFS completed in 0.00094151 seconds.
Alternate Sequential BFS completed in 0.00103833 seconds.
Parallel BFS completed in 0.00356002 seconds.

Search key: &875
Sequential BFS completed in 0.00094583 seconds.
Alternate Sequential BFS completed in 0.00119245 seconds.
Parallel BFS completed in 0.00421428 seconds.

Search key: &293
Sequential BFS completed in 0.0009349 seconds.
Alternate Sequential BFS completed in 0.00103257 seconds.
Parallel BFS completed in 0.00355589 seconds.

Search key: &1005
Sequential BFS completed in 0.00096628 seconds.
Alternate Sequential BFS completed in 0.00109234 seconds.
Parallel BFS completed in 0.00384554 seconds.

Total sequential: 0.01124117     Total Parallel: 0.0481738   Speedup: 0.2333461x
Generated 16384 edges in 0.00991847 seconds.
Generated graph with 10480 edges in 0.00799133 seconds.

Search key: &655
Sequential BFS completed in 0.00033721 seconds.
Alternate Sequential BFS completed in 0.00038979 seconds.
Parallel BFS completed in 0.00561167 seconds.

Search key: &613
Sequential BFS completed in 0.00096641 seconds.
Alternate Sequential BFS completed in 0.00107754 seconds.
Parallel BFS completed in 0.00380307 seconds.

Search key: &936
Sequential BFS completed in 0.00093772 seconds.
Alternate Sequential BFS completed in 0.00105087 seconds.
Parallel BFS completed in 0.00363606 seconds.

Search key: &523
Sequential BFS completed in 0.0009603 seconds.
Alternate Sequential BFS completed in 0.00101577 seconds.
Parallel BFS completed in 0.00316589 seconds.

Search key: &545
Sequential BFS completed in 0.00095766 seconds.
Alternate Sequential BFS completed in 0.00098998 seconds.
Parallel BFS completed in 0.00307908 seconds.

Search key: &530
Sequential BFS completed in 0.00094643 seconds.
Alternate Sequential BFS completed in 0.0010089 seconds.
Parallel BFS completed in 0.00319762 seconds.

Search key: &641
Sequential BFS completed in 0.00095625 seconds.
Alternate Sequential BFS completed in 0.00099153 seconds.
Parallel BFS completed in 0.00312649 seconds.

Search key: &522
Sequential BFS completed in 0.00093956 seconds.
Alternate Sequential BFS completed in 0.00100919 seconds.
Parallel BFS completed in 0.00309998 seconds.

Search key: &18
Sequential BFS completed in 0.00094413 seconds.
Alternate Sequential BFS completed in 0.00095986 seconds.
Parallel BFS completed in 0.0029101 seconds.

Search key: &99
Sequential BFS completed in 0.00098037 seconds.
Alternate Sequential BFS completed in 0.00103973 seconds.
Parallel BFS completed in 0.00359524 seconds.

Search key: &166
Sequential BFS completed in 0.00094252 seconds.
Alternate Sequential BFS completed in 0.00103482 seconds.
Parallel BFS completed in 0.00353337 seconds.

Search key: &38
Sequential BFS completed in 0.00094515 seconds.
Alternate Sequential BFS completed in 0.00102453 seconds.
Parallel BFS completed in 0.00305628 seconds.

Search key: &204
Sequential BFS completed in 0.00095821 seconds.
Alternate Sequential BFS completed in 0.0010089 seconds.
Parallel BFS completed in 0.00315458 seconds.

Search key: &589
Sequential BFS completed in 0.00094373 seconds.
Alternate Sequential BFS completed in 0.00106823 seconds.
Parallel BFS completed in 0.00376018 seconds.

Search key: &874
Sequential BFS completed in 0.00096201 seconds.
Alternate Sequential BFS completed in 0.00106524 seconds.
Parallel BFS completed in 0.00363994 seconds.

Search key: &93
Sequential BFS completed in 0.00093674 seconds.
Alternate Sequential BFS completed in 0.00104707 seconds.
Parallel BFS completed in 0.00362707 seconds.

Total sequential: 0.01578194     Total Parallel: 0.05599662      Speedup: 0.28183743x
Generated 16384 edges in 0.00880474 seconds.
Generated graph with 10480 edges in 0.00796806 seconds.

Search key: &300
Sequential BFS completed in 0.00033369 seconds.
Alternate Sequential BFS completed in 0.00035624 seconds.
Parallel BFS completed in 0.0050555 seconds.

Search key: &94
Sequential BFS completed in 0.00097075 seconds.
Alternate Sequential BFS completed in 0.00105403 seconds.
Parallel BFS completed in 0.00386726 seconds.

Search key: &164
Sequential BFS completed in 0.00093611 seconds.
Alternate Sequential BFS completed in 0.00099899 seconds.
Parallel BFS completed in 0.00323917 seconds.

Search key: &834
Sequential BFS completed in 0.00094635 seconds.
Alternate Sequential BFS completed in 0.00102246 seconds.
Parallel BFS completed in 0.00354641 seconds.

Search key: &992
Sequential BFS completed in 0.00094445 seconds.
Alternate Sequential BFS completed in 0.00106377 seconds.
Parallel BFS completed in 0.00375706 seconds.

Search key: &912
Sequential BFS completed in 0.00094987 seconds.
Alternate Sequential BFS completed in 0.00106854 seconds.
Parallel BFS completed in 0.00349695 seconds.

Search key: &97
Sequential BFS completed in 0.00094635 seconds.
Alternate Sequential BFS completed in 0.00099497 seconds.
Parallel BFS completed in 0.00310275 seconds.

Search key: &562
Sequential BFS completed in 0.00093799 seconds.
Alternate Sequential BFS completed in 0.00104747 seconds.
Parallel BFS completed in 0.00361644 seconds.

Search key: &304
Sequential BFS completed in 0.00097234 seconds.
Alternate Sequential BFS completed in 0.00099291 seconds.
Parallel BFS completed in 0.00315173 seconds.

Search key: &231
Sequential BFS completed in 0.00094696 seconds.
Alternate Sequential BFS completed in 0.00115855 seconds.
Parallel BFS completed in 0.00417038 seconds.

Search key: &675
Sequential BFS completed in 0.00095716 seconds.
Alternate Sequential BFS completed in 0.00106133 seconds.
Parallel BFS completed in 0.00371932 seconds.

Search key: &230
Sequential BFS completed in 0.00094441 seconds.
Alternate Sequential BFS completed in 0.00107235 seconds.
Parallel BFS completed in 0.00370855 seconds.

Search key: &394
Sequential BFS completed in 0.00095488 seconds.
Alternate Sequential BFS completed in 0.00105004 seconds.
Parallel BFS completed in 0.00355574 seconds.

Search key: &484
Sequential BFS completed in 0.00113431 seconds.
Alternate Sequential BFS completed in 0.00104972 seconds.
Parallel BFS completed in 0.00363495 seconds.

Search key: &272
Sequential BFS completed in 0.0009412 seconds.
Alternate Sequential BFS completed in 0.00097803 seconds.
Parallel BFS completed in 0.00289754 seconds.

Search key: &7
Sequential BFS completed in 0.00097184 seconds.
Alternate Sequential BFS completed in 0.00099807 seconds.
Parallel BFS completed in 0.00305697 seconds.

Total sequential: 0.01596747     Total Parallel: 0.05757671      Speedup: 0.2773251x
Generated 16384 edges in 0.01058389 seconds.
Generated graph with 10480 edges in 0.01250254 seconds.

Search key: &142
Sequential BFS completed in 0.00033545 seconds.
Alternate Sequential BFS completed in 0.00035639 seconds.
Parallel BFS completed in 0.003265 seconds.

Search key: &347
Sequential BFS completed in 0.00033274 seconds.
Alternate Sequential BFS completed in 0.00041046 seconds.
Parallel BFS completed in 0.00288488 seconds.

Search key: &832
Sequential BFS completed in 0.00032437 seconds.
Alternate Sequential BFS completed in 0.00034708 seconds.
Parallel BFS completed in 0.00212077 seconds.

Search key: &443
Sequential BFS completed in 0.0004206 seconds.
Alternate Sequential BFS completed in 0.00050124 seconds.
Parallel BFS completed in 0.00318754 seconds.

Search key: &651
Sequential BFS completed in 0.000418 seconds.
Alternate Sequential BFS completed in 0.00048543 seconds.
Parallel BFS completed in 0.00311363 seconds.

Search key: &207
Sequential BFS completed in 0.00041769 seconds.
Alternate Sequential BFS completed in 0.0004858 seconds.
Parallel BFS completed in 0.00301419 seconds.

Search key: &726
Sequential BFS completed in 0.00041985 seconds.
Alternate Sequential BFS completed in 0.00051747 seconds.
Parallel BFS completed in 0.00332241 seconds.

Search key: &746
Sequential BFS completed in 0.0004201 seconds.
Alternate Sequential BFS completed in 0.00049654 seconds.
Parallel BFS completed in 0.00354821 seconds.

Search key: &558
Sequential BFS completed in 0.0007545 seconds.
Alternate Sequential BFS completed in 0.00085516 seconds.
Parallel BFS completed in 0.00373546 seconds.

Search key: &15
Sequential BFS completed in 0.00076284 seconds.
Alternate Sequential BFS completed in 0.00082745 seconds.
Parallel BFS completed in 0.00364957 seconds.

Search key: &783
Sequential BFS completed in 0.00094485 seconds.
Alternate Sequential BFS completed in 0.0010808 seconds.
Parallel BFS completed in 0.0041142 seconds.

Search key: &164
Sequential BFS completed in 0.00096163 seconds.
Alternate Sequential BFS completed in 0.00100365 seconds.
Parallel BFS completed in 0.00348856 seconds.

Search key: &672
Sequential BFS completed in 0.00094545 seconds.
Alternate Sequential BFS completed in 0.00099666 seconds.
Parallel BFS completed in 0.00342171 seconds.

Search key: &464
Sequential BFS completed in 0.00093664 seconds.
Alternate Sequential BFS completed in 0.0010315 seconds.
Parallel BFS completed in 0.00355742 seconds.

Search key: &867
Sequential BFS completed in 0.00093491 seconds.
Alternate Sequential BFS completed in 0.00107149 seconds.
Parallel BFS completed in 0.00410336 seconds.

Search key: &586
Sequential BFS completed in 0.0009436 seconds.
Alternate Sequential BFS completed in 0.00104835 seconds.
Parallel BFS completed in 0.00351448 seconds.

Total sequential: 0.01151547     Total Parallel: 0.05404141      Speedup: 0.21308605x
Generated 16384 edges in 0.01052734 seconds.
Generated graph with 10480 edges in 0.00840587 seconds.

Search key: &22
Sequential BFS completed in 0.00033831 seconds.
Alternate Sequential BFS completed in 0.00035723 seconds.
Parallel BFS completed in 0.00202654 seconds.

Search key: &579
Sequential BFS completed in 0.0003292 seconds.
Alternate Sequential BFS completed in 0.00035186 seconds.
Parallel BFS completed in 0.00236633 seconds.

Search key: &714
Sequential BFS completed in 0.00033058 seconds.
Alternate Sequential BFS completed in 0.00037928 seconds.
Parallel BFS completed in 0.00277624 seconds.

Search key: &38
Sequential BFS completed in 0.00033089 seconds.
Alternate Sequential BFS completed in 0.00034736 seconds.
Parallel BFS completed in 0.00188143 seconds.

Search key: &179
Sequential BFS completed in 0.00032792 seconds.
Alternate Sequential BFS completed in 0.00036449 seconds.
Parallel BFS completed in 0.00258266 seconds.

Search key: &567
Sequential BFS completed in 0.00052984 seconds.
Alternate Sequential BFS completed in 0.00072385 seconds.
Parallel BFS completed in 0.00345991 seconds.

Search key: &422
Sequential BFS completed in 0.00062092 seconds.
Alternate Sequential BFS completed in 0.00070534 seconds.
Parallel BFS completed in 0.00347099 seconds.

Search key: &248
Sequential BFS completed in 0.00063546 seconds.
Alternate Sequential BFS completed in 0.00071004 seconds.
Parallel BFS completed in 0.00348015 seconds.

Search key: &0
Sequential BFS completed in 0.00062629 seconds.
Alternate Sequential BFS completed in 0.000609 seconds.
Parallel BFS completed in 0.00301224 seconds.

Search key: &78
Sequential BFS completed in 0.00083337 seconds.
Alternate Sequential BFS completed in 0.00091385 seconds.
Parallel BFS completed in 0.00333684 seconds.

Search key: &58
Sequential BFS completed in 0.00094895 seconds.
Alternate Sequential BFS completed in 0.00124097 seconds.
Parallel BFS completed in 0.00385001 seconds.

Search key: &821
Sequential BFS completed in 0.00094367 seconds.
Alternate Sequential BFS completed in 0.0011015 seconds.
Parallel BFS completed in 0.00406255 seconds.

Search key: &752
Sequential BFS completed in 0.00094824 seconds.
Alternate Sequential BFS completed in 0.00106947 seconds.
Parallel BFS completed in 0.00399974 seconds.

Search key: &979
Sequential BFS completed in 0.00095308 seconds.
Alternate Sequential BFS completed in 0.00113375 seconds.
Parallel BFS completed in 0.00422573 seconds.

Search key: &66
Sequential BFS completed in 0.00094518 seconds.
Alternate Sequential BFS completed in 0.00096218 seconds.
Parallel BFS completed in 0.00314472 seconds.

Search key: &344
Sequential BFS completed in 0.00093952 seconds.
Alternate Sequential BFS completed in 0.00106617 seconds.
Parallel BFS completed in 0.0037236 seconds.

Total sequential: 0.01203635     Total Parallel: 0.05139969      Speedup: 0.23417159x

Convert functionality into RAII style.

Split functionality up into the modules.

Cleanup dependencies, and redundancies.
@mstewartgallus
Copy link
Contributor Author

So I'm going to break this up into smaller pull requests.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants